import wx

# 自定义窗口类
class MyFrame(wx.Frame):
    def __init__(self, parent, title):
        super().__init__(parent, title=title, size=(300, 200))
        # 创建一个面板
        self.panel = wx.Panel(self)
        # 创建一个Flex网格布局
        grid = wx.FlexGridSizer(3, 3, 5, 5)

        # 添加控件到Flex网格布局中
        for i in range(3):
            for j in range(3):
                button = wx.Button(self.panel, label=f"按钮{i}{j}")
                grid.Add(button, 0, wx.EXPAND)
                button.Bind(wx.EVT_BUTTON, self.on_button_click)


        # 设置列的比例
        grid.AddGrowableCol(0, 1)  # 第一列的比例为1
        grid.AddGrowableCol(1, 2)  # 第二列的比例为2
        grid.AddGrowableCol(2, 8)  # 第三列的比例为3
        # 设置行的比例
        grid.AddGrowableRow(0, 1)  # 第一行的比例为1
        grid.AddGrowableRow(1, 2)  # 第二行的比例为2
        grid.AddGrowableRow(2, 8)  # 第三行的比例为3


        # 将Flex网格布局设置为面板的布局管理器
        self.panel.SetSizer(grid)


    def on_button_click(self, event):
        print("按钮被点击了")



if __name__ == "__main__":
    # 创建一个应用程序
    app = wx.App()
    # 创建一个窗口
    frame = MyFrame(None, title="Hello, wxPython!")
    # 显示窗口
    frame.Show()
    # 运行应用程序
    app.MainLoop()
